class Solution:
    def isValid(self, s: str) -> bool:
        dictr = {
            ")": "(",
            "]": "[",
            "}": "{"
        }
        temp = []
        for c in s:
            if c not in dictr:
                temp.append(c)
            elif c in dictr and len(temp) == 0:
                return False
            elif temp[-1] == dictr[c]:
                temp.pop()
            else:
                return False
        if not temp:
            return True
        else:
            return False


"""
给定一个只包括 '('，')'，'{'，'}'，'['，']' 的字符串 s ，判断字符串是否有效。

有效字符串需满足：

左括号必须用相同类型的右括号闭合。
左括号必须以正确的顺序闭合。
每个右括号都有一个对应的相同类型的左括号。
 

示例 1：

输入：s = "()"
输出：true
示例 2：

输入：s = "()[]{}"
输出：true
示例 3：

输入：s = "(]"
输出：false

"""